<?php

// [ 模板消息 ]
// https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1433751277

namespace app\wechat\lib;
use think\Request;
use app\wechat\lib\AccessToken;

class TplMsg
{
    // 设置所属行业
    // -------------------------------------------
    // 主行业            副行业               代码
    // -------------------------------------------
    // IT科技            互联网/电子商务      1
    // IT科技            IT软件与服务         2
    // IT科技            IT硬件与设备         3
    // IT科技            电子技术             4
    // IT科技            通信与运营商         5
    // IT科技            网络游戏             6
    // 金融业            银行                 7
    // 金融业            基金|理财|信托       8
    // 金融业            保险                 9
    // 餐饮              餐饮                 10
    // 酒店旅游          酒店                 11
    // 酒店旅游          旅游                 12
    // 运输与仓储        快递                 13
    // 运输与仓储        物流                 14
    // 运输与仓储        仓储                 15
    // 教育              培训                 16
    // 教育              院校                 17
    // 政府与公共事业    学术科研             18
    // 政府与公共事业    交警                 19
    // 政府与公共事业    博物馆               20
    // 政府与公共事业    公共事业|非盈利机构  21
    // 医药护理          医药医疗             22
    // 医药护理          护理美容             23
    // 医药护理          保健与卫生           24
    // 交通工具          汽车相关             25
    // 交通工具          摩托车相关           26
    // 交通工具          火车相关             27
    // 交通工具          飞机相关             28
    // 房地产            建筑                 29
    // 房地产            物业                 30
    // 消费品            消费品               31
    // 商业服务          法律                 32
    // 商业服务          会展                 33
    // 商业服务          中介服务             34
    // 商业服务          认证                 35
    // 商业服务          审计                 36
    // 文体娱乐          传媒                 37
    // 文体娱乐          体育                 38
    // 文体娱乐          娱乐休闲             39
    // 印刷              印刷                 40
    // 其它              其它                 41
    // http请求方式: POST
    // https://api.weixin.qq.com/cgi-bin/template/api_set_industry?access_token=ACCESS_TOKEN
    // @param industry1  公众号模板消息所属行业编号
    //        industry2  公众号模板消息所属行业编号
    public static function setIndustry($industry1, $industry2)
    {
        $url = 'https://api.weixin.qq.com/cgi-bin/template/api_set_industry?access_token=' . AccessToken::get();
        $data = '{
                    "industry_id1":"' . $industry1 .'",
                    "industry_id2":"' . $industry2 .'"
                }';
        $ret = https_curl($url,'POST',$data);
        $ret = json_decode($ret,true);
        return $ret;
    }

    // 获取设置的行业信息
    // http请求方式：GET
    // https://api.weixin.qq.com/cgi-bin/template/get_industry?access_token=ACCESS_TOKEN
    // @return
    /*
        {
            "primary_industry":{"first_class":"运输与仓储","second_class":"快递"},
            "secondary_industry":{"first_class":"IT科技","second_class":"互联网|电子商务"}
        }
    */
    public static function getIndustry()
    {
        $url = 'https://api.weixin.qq.com/cgi-bin/template/get_industry?access_token=' . AccessToken::get();
        $ret = https_curl($url);
        $ret = json_decode($ret,true);
        return $ret;
    }

    // 获得模板ID
    // http请求方式: POST
    // https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token=ACCESS_TOKEN
    // @param tpl 模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式
    // @return
    /*
        {
            "errcode":0,
            "errmsg":"ok",
            "template_id":"Doclyl5uP7Aciu-qZ7mJNPtWkbkYnWBWVja26EGbNyk"
        }
    */
    public static function getTpl($tpl)
    {
        $url = 'https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token=' . AccessToken::get();
        $data = '{
                    "template_id_short":"' . $tpl .'"
                }';
        $ret = https_curl($url,'POST',$data);
        $ret = json_decode($ret,true);
        return $ret;
    }

    // 获取模板列表
    // http请求方式：GET
    // https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=ACCESS_TOKEN
    // @return
    /*
        {   
         "template_list": [{
              "template_id": "iPk5sOIt5X_flOVKn5GrTFpncEYTojx6ddbt8WYoV5s",
              "title": "领取奖金提醒",
              "primary_industry": "IT科技",
              "deputy_industry": "互联网|电子商务",
              "content": "{ {result.DATA} }\n\n领奖金额:{ {withdrawMoney.DATA} }\n领奖  时间:{ {withdrawTime.DATA} }\n银行信息:{ {cardInfo.DATA} }\n到账时间:  { {arrivedTime.DATA} }\n{ {remark.DATA} }",
              "example": "您已提交领奖申请\n\n领奖金额：xxxx元\n领奖时间：2013-10-10 12:22:22\n银行信息：xx银行(尾号xxxx)\n到账时间：预计xxxxxxx\n\n预计将于xxxx到达您的银行卡"
           }]
        }
    */
    public static function getTplList()
    {
        $url = 'https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=' . AccessToken::get();
        $ret = https_curl($url);
        $ret = json_decode($ret,true);
        return $ret;
    }

    // 删除模板
    // http请求方式：POST
    // https://api.weixin.qq.com/cgi-bin/template/del_private_template?access_token=ACCESS_TOKEN
    // @param tpl 公众帐号下模板消息ID
    // @return
    /*
        {
           "errcode" : 0,
           "errmsg" : "ok"
        }
    */
    public static function delTpl($tpl)
    {
        $url = 'https://api.weixin.qq.com/cgi-bin/template/del_private_template?access_token=' . AccessToken::get();
        $data = '{
                    "template_id":"' . $tpl .'"
                }';
        $ret = https_curl($url,'POST',$data);
        $ret = json_decode($ret,true);
        return $ret;
    }

    // 发送模板消息
    // http请求方式: POST
    // https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
    // @param
    /*
        参数          是否必填    说明
        --------------------------------------
        touser        是          接收者openid
        template_id   是          模板ID
        url           否          模板跳转链接
        miniprogram   否          跳小程序所需数据，不需跳小程序可不用传该数据
        appid         是          所需跳转到的小程序appid（该小程序appid必须与发模板消息的公众号是绑定关联关系）
        pagepath      是          所需跳转到小程序的具体页面路径，支持带参数,（示例index?foo=bar）
        data          是          模板数据
        color         否          模板内容字体颜色，不填默认为黑色

        注：url和miniprogram都是非必填字段，若都不传则模板无跳转；若都传，会优先跳转至小程序。
            开发者可根据实际需要选择其中一种跳转方式即可。
            当用户的微信客户端版本不支持跳小程序时，将会跳转至url。
    */
    // @return
    /*
        {
            "errcode":0,
            "errmsg":"ok",
            "msgid":200228332
        }
    */
    public static function send($data)
    {
        $url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=' . AccessToken::get();

        $domain = Request::instance()->domain();
        $data = '{
                    "touser":"OPENID",
                    "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",
                    "url":"' . $domain . '/mobile/service/member#mychat",           
                    "data":{
                        "first": {
                            "value":"您好，有人向您投递了一个项目。",
                            "color":"#173177"
                        },
                        "keynote1":{
                            "value":"[投递人]",
                            "color":"#000000"
                        },
                        "keynote2": {
                            "value":"[项目名]",
                            "color":"#000000"
                        },
                        "keynote3": {
                            "value":"[投递时间 2017年8月22日 18:30]",
                            "color":"#000000"
                        },
                        "remark":{
                            "value":"感谢您的使用。",
                            "color":"#000000"
                        }
                    }
                }';
        $data = '{
                    "touser":"OPENID",
                    "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",
                    "url":"' . $domain . '/mobile/service/member#mychat",          
                    "data":{
                        "first": {
                            "value":"您好，您收到一份项目约谈。",
                            "color":"#173177"
                        },
                        "keynote1":{
                            "value":"[约谈人]",
                            "color":"#000000"
                        },
                        "keynote2": {
                            "value":"[项目名]",
                            "color":"#000000"
                        },
                        "keynote3": {
                            "value":"[约谈时间 2017年8月22日 18:30]",
                            "color":"#000000"
                        },
                        "remark":{
                            "value":"感谢您的使用。",
                            "color":"#000000"
                        }
                    }
                }';
        $ret = https_curl($url,'POST',$data);
        $ret = json_decode($ret,true);
        return $ret;
    }
}